import matplotlib.pyplot as plt
# 解决中文显示和负号显示问题
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
months = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12','13','14','15']
max_temps = [29, 30, 31, 32, 33, 34, 31, 30, 29, 30, 32, 33,34,33,31]
min_temps = [22, 23, 24, 25, 24, 25, 24, 23, 22, 23, 24, 25,26,28,24]
# 设置图形大小和分辨率
plt.figure(figsize=(16, 8), dpi=100)
# 绘制平均最高温度和最低温度曲线
plt.plot(months, max_temps, color='r', label='平均最高温度', marker='o')
plt.plot(months, min_temps, color='b', label='平均最低温度', marker='o')
# 添加网格
plt.grid(linestyle=':', alpha=0.5)
# 添加坐标轴标签和标题
plt.xlabel('月份')
plt.ylabel('温度(单位：C°)')
plt.title('1981年-2010年(清远)月平均气温和降水')
# 添加图例
plt.legend()
# 未来15天降水量数据
precipitation = [3.2, 5.1, 0.0, 0.5, 8.7, 15.4, 12.3, 2.1, 0.0, 1.2, 6.8, 20.1, 7.5, 3.0, 0.2]
days = list(range(1, 16))
# 新建一个子图用于绘制降水量柱状图
ax2 = plt.twinx()
ax2.bar(days, precipitation, color='g', label='未来15天降水量')
ax2.set_ylabel('降水量(单位：mm)')
ax2.legend(loc='upper right')
# 保存图形
plt.savefig('temp.png')
# 显示图形
plt.show()